#!/usr/bin/python
# -*- coding: UTF-8 -*-

import os
import io
import sys

SUCCESS = 0
ERROR_DIR_NOT_EXIST = 1  # type: int #目标目录不存在
ERROR_IMPORT_INPUT = 2  # type: int #输入不合法
ERROR_KEY_NOT_FOUND = 3  # 没找到 key
ERROR_MODULE_NOT_FOUND = 4  # 没找到 key
EXCEPTION_EXL_FILE = 5  # 文件为空或者第一行没有内容
ERROR_EXCEL_NOT_EXIST = 6  # 文件为空或者第一行没有内容
ERROR_XML_FILE_NOT_EXIST = 7  # 文件不存在

class Error:
    desc = None  # type: str
    code = -1  # type: int

    def __init__(self, code, desc=""):
        self.desc = desc
        self.code = code

    def isError(self):
        return self.code != SUCCESS

    def get_desc(self):
        des = ""
        if self.code == SUCCESS:
            des = "操作成功！"
        elif self.code == ERROR_DIR_NOT_EXIST:
            des = "目录不存在"
        elif self.code == ERROR_IMPORT_INPUT:
            des = "输入错误，请查看以下项：\n1. 同时输入目标语言和文件，或者输入目标目录;\n2. 表格中不存在目标语言"
        elif self.code == ERROR_KEY_NOT_FOUND:
            des = "表格结构错误：\n没有检索到 key 列，key 列需命名为 Android keyName"
        elif self.code == ERROR_MODULE_NOT_FOUND:
            des = "表格结构错误：\n没有检索到 Module 列，key 列需命名为 Android module"
        elif self.code == EXCEPTION_EXL_FILE:
            des = "表格结构错误：\n表格为空或者没有检索到标题行，标题列为第一行"
        elif self.code == ERROR_EXCEL_NOT_EXIST:
            des = "请输入表格文件"
        elif self.code == ERROR_XML_FILE_NOT_EXIST:
            des = "xml 文件不存在"
        if self.desc and des:
            self.desc = "%s\nMessage:%s" % (des, self.desc)
        elif des:
            self.desc = des
        return self.desc


class Config:
    def __init__(self):
        pass
    
    ROW_NOTE = 0
    ROW_TITLE = 1
    ROW_CONTENT_START = 2

    keyTitleNote = u"资源ID"
    keyTitle = "id"  # key 名（Android 字符串 name)
    moduleTitleNote = u"XML名称"
    moduleTitle = "xml name"  # module 名（xml 文件名）
    import_start_col = 2  # 从第几列开始导入

    export_excel_name = "Output.xls"  # 导出的 excel 文件名
    export_base_dir = "values"  # 导出基准文件夹
    export_base_title_note = u"基准(默认)"
    export_base_title = "values"  # 导出基准 title

    export_only_zh = False  # 是否仅导出中文字符

# Android 常见的各国语言文件夹名称汇总
# 
LAN_DICT = {
    'ar'    : u'Arabic阿拉伯语',
    'ar-rAE': u'阿拉伯语(阿拉伯联合酋长国)',
    'ar-rEG': u'阿拉伯语(埃及)',
    'ar-rIL': u'阿拉伯语(以色列)',
    'cs'    : u'捷克语',
    'cs-rCZ': u'捷克语(捷克共和国)',
    'da'    : u'丹麦语',
    'da-rDK': u'丹麦语(丹麦)',
    'de'    : u'德语',
    'de-rDE': u'德语(德国)',
    'de-rCH': u'德语(瑞士)',
    'de-rAT': u'德语(奥地利)',
    'el': u'希腊语',
    'el-rGR': u'希腊语(希腊)',
    'en'    : u'英语',
    'en-rGB': u'英语(英国)',
    'en-rCA': u'英语(加拿大)',
    'en-rUS': u'英语(美国)',
    'es'    : u'西班牙语',
    'es-rES': u'西班牙语(西班牙)',
    'fi': u'芬兰语',
    'fi-rFI': u'芬兰语(芬兰)',
    'fr'    : u'法语',
    'fr-rFR': u'法语(法国)',
    'fr-rCA': u'法语(加拿大)',
    'fr-rCH': u'法语(瑞士)',
    'fr-rBE': u'法语(比利时)',
    'hu'    : u'匈牙利语',
    'hu-rHU': u'匈牙利语(匈牙利)',
    'fa-rIR': u'波斯语(伊朗)',
    'it': u'意大利语',
    'it-rIT': u'意大利语(意大利)',
    'it-rCH': u'意大利语(瑞士)',
    'ja': u'日语',
    'ja-rJP': u'日语(日本)',
    'ko': u'韩语',
    'ko-rKR': u'韩语(韩国)',
    'nl'    : u'荷兰语',
    'nl-rNL': u'荷兰语(荷兰)',
    'nl-rBE': u'荷兰语(比利时)',
    'pl': u'波兰语',
    'pl-rPL': u'波兰语(波兰)',
    'pt'    : u'葡萄牙语',
    'pt-rPT': u'葡萄牙语(葡萄牙)',
    'pt-rBR': u'葡萄牙语(巴西)',
    'ro': u'罗马尼亚语',
    'ro-rRO': u'罗马尼亚语(罗马尼亚)',
    'ru'    : u'俄语',
    'ru-rRU': u'俄语(俄罗斯)',
    'sk': u'斯洛伐克语',
    'sk-rSK': u'斯洛伐克语(斯洛伐克)',
    'sv': u'瑞典语',
    'sv-rSE': u'瑞典语(瑞典)',
    'tr': u'土耳其语',
    'tr-rTR': u'土耳其语(土耳其)',
    'uk-rUA': u'乌克兰语(乌克兰)',
    'zh-rCN': u'汉语(简体)',
    'zh-rHK': u'汉语繁体(中国香港)',
    'zh-rTW': u'汉语繁体(中国台湾)',
    'th-rTH': u'泰语(泰国)',
    'vi-rVN': u'越南语(越南)',
    'hi-rIN': u'印地语(印度)',
    'ms-rMY': u'马来语(马来西亚)',
    'ro-rRO': u'罗马尼亚语(罗马尼亚)',
    'sr-rRS': u'塞尔维亚语(塞尔维亚)',
    'uk': u'乌克兰语',
    'uk-rUA': u'乌克兰语(乌克兰)',
    'zu-rZA': u'祖鲁语(南非)',
    }